package com.wgy.day21.Object类;

/**
 * Created by pc on 2020/11/18 20:48
 * Description: LearningJava
 */
/*
person类默认继承了Object类,所以可以使用Object类的equals方法
Boolean equals(object obj)指示其他对象是否与此对象"相等"
equals 方法源码:
public boolean equals (object obj){
return(this == obj);
}
参数:object obj:可以传递任意的对象
== :比较运算符,返回的是一个布尔值 true/false
    基本数据类型:比较的是数值
    引用数据类型:比较的是两个对象的地址值
    this是谁?哪个个对象调用的方法,方法中的this就是那个对象; p1调用的equals方法,所以this就是p1
    obj 是谁?传递进来的参数p2
    this==obj ---> p1==p2

*/
public class Equals {
    public static void main(String[] args) {
        Person p1 = new Person("迪丽热巴", 23);
        Person p2 = new Person("古力娜扎", 19);
        Person p3 = new Person("古力娜扎", 19);

        System.out.println(p1);//com.wgy.day21.Object类.Person@16b98e56
        System.out.println(p2);//com.wgy.day21.Object类.Person@7ef20235
        System.out.println(p3);//com.wgy.day21.Object类.Person@27d6c5e0

        boolean b = p1.equals(p2);
        boolean c = p2.equals(p3);
        System.out.println(b); //false
        System.out.println(c); //false 因为object类中的equals()对比的是两个对象的地址值,而不是对象内容
                               // 如果Person类覆盖重写了equals()方法,让其比较的是两个对象的内容,那么这里的就是true值了.

        p1 = p2;   //将p2的地址值赋值给p1
        boolean a = p1.equals(p2);
        System.out.println(a);//true
        System.out.println(p1);//com.wgy.day21.Object类.Person@7ef20235


    }
}
